#pragma once

#define DIRECTINPUT_VERSION 0x0800
#include <dinput.h>

enum DI_ERROR_CODE
{
	DI_SUCCESS,
	DI_FAILED,
};

enum DI_MOUSE_MAP
{
	//mouse button
	BTN_LEFT   = 0,
	BTN_RIGHT  = 1,
	BTN_MIDDLE = 2,
};

enum DI_KEYBOARD_MAP
{
	//alphabet keys
	KEY_A = DIK_A,	KEY_B = DIK_B,	KEY_C = DIK_C,	KEY_D = DIK_D,
	KEY_E = DIK_E,	KEY_F = DIK_F,	KEY_G = DIK_G,	KEY_H = DIK_H,
	KEY_I = DIK_I,	KEY_J = DIK_J,	KEY_K = DIK_K,	KEY_L = DIK_L,
	KEY_M = DIK_M,	KEY_N = DIK_N,	KEY_O = DIK_O,	KEY_P = DIK_P,
	KEY_Q = DIK_Q,	KEY_R = DIK_R,	KEY_S = DIK_S,	KEY_T = DIK_T,
	KEY_U = DIK_U,	KEY_V = DIK_V,	KEY_W = DIK_W,	KEY_X = DIK_X,
	KEY_Y = DIK_Y,	KEY_Z = DIK_Z,

	//number keys
	KEY_0 = DIK_0,	KEY_1 = DIK_1,	KEY_2 = DIK_2,
	KEY_3 = DIK_3,	KEY_4 = DIK_4,	KEY_5 = DIK_5,
	KEY_6 = DIK_6,	KEY_7 = DIK_7,	KEY_8 = DIK_8,
	KEY_9 = DIK_9,

	//arrow keys
	KEY_UP	  = DIK_UP,
	KEY_DOWN  = DIK_DOWN,
	KEY_LEFT  = DIK_LEFT,
	KEY_RIGHT = DIK_RIGHT,

	//other keys
	KEY_ENTER  = DIK_RETURN,
	KEY_ESCAPE = DIK_ESCAPE,
	KEY_SPACE  = DIK_SPACE,
	KEY_BACK   = DIK_BACK,
	KEY_LCTRL  = DIK_LCONTROL,
	KEY_RCTRL  = DIK_RCONTROL,
};